/**
 **************************************************************************
 * @file     main.c
 * @brief    main program
 **************************************************************************
 * OLED Demo 基于硬件IIC DMA 模式
 *
 **************************************************************************
 *
 */
#include "at32f413_clock.h"
#include <stdio.h>
#include "state_led.h"
#include "ssd1306.h"
#include "use_printf.h"
// #include "at32f413_i2c.h"
#include "i2c_application.h"
#include "xtp_delay.h"

/* 全局变量 */
uint32_t systick_count = 0;
float tmp = 0.00f;
uint8_t testdata[2] = {0x00, 0xAE};
extern i2c_handle_type hi2cx;

/**
 * @brief  main function.
 * @param  none
 * @retval none
 */
int main(void)
{
    /* config nvic priority group */
    nvic_priority_group_config(NVIC_PRIORITY_GROUP_4);

    system_clock_config();
    state_led_init();
    SysTick_Config(SystemCoreClock / 1000);
    use_printf_config();
    ssd1306.init();
    // ssd1306.color_mode(INVERT_COLOR);
    // ssd1306.set_inverted(true);

    printf("oled_init done!\n");

    // for (u8 i = 0; i < 128; i++)
    // {
    //     ssd1306.draw_pixel(i, 63);
    //     ssd1306.draw_pixel(i, 62);
    //     ssd1306.draw_pixel(i, 61);
    //     ssd1306.draw_pixel(i, 60);
    //     ssd1306.draw_pixel(i, 59);
    //     ssd1306.draw_pixel(i, 58);
    //     ssd1306.draw_pixel(i, 57);
    //     ssd1306.draw_pixel(i, 56);
    // }
    // ssd1306.update();
    ssd1306.draw_horizontal_line(0, 31, 63);
    ssd1306.draw_vertical_line(63, 31, 31);
    ssd1306.draw_horizontal_line(63, 31, 63);
    ssd1306.update();
    ssd1306.clear();
    ssd1306.update();

    ssd1306.draw_rect(0, 0, 32, 16);
    ssd1306.draw_fill_rect(2, 2, 28, 12);
    
    ssd1306.draw_circle(63, 31, 25);
    ssd1306.draw_fill_circle(63,31,23);
    ssd1306.update();

    while (1)
    {
        printf("while(1)\n");
        // ssd1306.set_display_deg(DISPLAY_180_DEG);
        // delay_ms(1000);
        // ssd1306.set_display_deg(DISPLAY_0_DEG);
        // delay_ms(1000);
    }
}
